/* panes widget style information

   [SIGNAL]
      elm,panes,fixed: Used for elm_panes_fixed_set()
      elm,panes,unfixed: Used for elm_panes_fixed_set()

   [SIGNAL EMIT]
      elm,action,click: Used for "clicked" smart callback.
      elm,action,click,double: Used for "clicked,double" smart callback.
      elm,action,press: Used for "press" smart callback.
      elm,action,unpress: Used for "unpress" smart callback.
*/

#define PANEMIN  8
#define PANEMIN2 24
#define PANEWID  24

group { name: "elm/panes/vertical/default";
   images.image: "pane_handle_v.png" COMP;
   parts {
      part { name: "whole"; type: SPACER;
         description { state: "default" 0.0;
         }
      }
      part { name: "right_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 1 1 1;
            y: 0 0 0;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "left_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 1 1 1;
            y: 0 0 0;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "sub_whole"; type: SPACER;
         description { state: "default" 0.0;
            rel1.relative: 1.0 0.0;
            rel1.to_x: "left_constraint";
            rel2.relative: 0.0 1.0;
            rel2.to_x: "right_constraint";
         }
      }
      part { name: "whole_left"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_x: "elm.bar";
            rel2.relative: 0.0 1.0;
         }
      }
      part { name: "whole_right"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_x: "elm.bar";
            rel1.relative: 1.0 0.0;
         }
      }
      part { name: "elm.swallow.left"; type: SWALLOW;
         clip_to: "whole_left";
         description { state: "default" 0.0;
            rel2.to_x: "elm.bar";
            rel2.relative: 0.0 1.0;
         }
      }
      part { name: "elm.swallow.right"; type: SWALLOW;
         clip_to: "whole_right";
         description { state: "default" 0.0;
            rel1.to_x: "elm.bar";
            rel1.relative: 1.0 0.0;
         }
      }
      part { name: "elm.bar"; type: SPACER;
         scale: 1;
         dragable { confine: "sub_whole";
            x: 1 1 1;
            y: 0 0 0;
         }
         description { state: "default" 0.0;
            max: 8 99999;
            min: 8 24;
            fixed: 1 1;
            rel1.relative: 0.0 0.5;
            rel2.relative: 1.0 0.5;
         }
      }
      part { name: "dots"; mouse_events: 0;
         scale: 1;
         description { state: "default" 0.0;
            FIXED_SIZE(8, 24)
            image.normal: "pane_handle_v.png";
            rel.to: "elm.bar";
            color_class: "/fg/normal/panes/handle";
         }
         description { state: "pressed" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/pressed/panes/handle";
         }
      }
      part { name: "elm.swallow.event"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            visible: 0;
            min: PANEMIN PANEMIN2;
            fixed: 1 1;
            rel.to: "elm.bar";
         }
      }
      part { name: "bar"; type: RECT;
         scale: 1;
         dragable.events: "elm.bar";
         description { state: "default" 0.0;
            min: PANEMIN PANEWID;
            max: 99999 99999;
            fixed: 1 1;
            rel1.to_x: "elm.swallow.event";
            rel2.to_x: "elm.swallow.event";
            color: 0 0 0 0; // no cc
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
   }
   programs {
      program { signal: "mouse,down,1"; source: "bar"; // for "press" smart callback
         action: SIGNAL_EMIT "elm,action,press" "elm";
      }
      program { signal: "mouse,up,1"; source: "bar"; // for "unpress" smart callback
         action: SIGNAL_EMIT "elm,action,unpress" "elm";
      }
      program { name: "bar_down";
         signal: "mouse,down,1"; source: "bar";
         action: STATE_SET "pressed" 0.0;
         target: "dots";
      }
      program { name: "bar_up";
         signal: "mouse,up,1"; source: "bar";
         action: STATE_SET "default" 0.0;
         target: "dots";
      }
      program { signal: "mouse,clicked,1"; source: "bar"; // for "clicked" smart callback
         action: SIGNAL_EMIT "elm,action,click" "elm";
      }
      program { signal: "mouse,down,1,double"; source: "bar"; // for "clicked,double" smart callback
         action: SIGNAL_EMIT "elm,action,click,double" "elm";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,fixed"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "bar";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,unfixed"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "bar";
      }
   }
}

group { name: "elm/panes/horizontal/default";
   images.image: "pane_handle_h.png" COMP;
   parts {
      part { name: "whole"; type: SPACER;
         description { state: "default" 0.0;
         }
      }
      part { name: "right_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 0 0 0;
            y: 1 1 1;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "left_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 0 0 0;
            y: 1 1 1;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "sub_whole"; type: SPACER;
         description { state: "default" 0.0;
            rel1.relative: 0.0 1.0;
            rel1.to_y: "left_constraint";
            rel2.relative: 1.0 0.0;
            rel2.to_y: "right_constraint";
         }
      }
      part { name: "whole_left"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_y: "elm.bar";
            rel2.relative: 1.0 0.0;
         }
      }
      part { name: "whole_right"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_y: "elm.bar";
            rel1.relative: 0.0 1.0;
         }
      }
      part { name: "elm.swallow.left"; type: SWALLOW;
         clip_to: "whole_left";
         description { state: "default" 0.0;
            rel2.to_y: "elm.bar";
            rel2.relative: 1.0 0.0;
         }
      }
      part { name: "elm.swallow.right"; type: SWALLOW;
         clip_to: "whole_right";
         description { state: "default" 0.0;
            rel1.to_y: "elm.bar";
            rel1.relative: 0.0 1.0;
         }
      }
      part { name: "elm.bar"; type: SPACER;
         scale: 1;
         dragable { confine: "sub_whole";
            x: 0 0 0;
            y: 1 1 1;
         }
         description { state: "default" 0.0;
            max: 99999 8;
            min: 24 8;
            fixed: 1 1;
            rel1.relative: 0.5 0.0;
            rel2.relative: 0.5 1.0;
         }
      }
      part { name: "dots"; mouse_events: 0;
         scale: 1;
         description { state: "default" 0.0;
            FIXED_SIZE(24, 8)
            image.normal: "pane_handle_h.png";
            fill.smooth: 0;
            rel.to: "elm.bar";
            color_class: "/fg/normal/panes/handle";
         }
         description { state: "pressed" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/pressed/panes/handle";
         }
      }
      part { name: "elm.swallow.event"; type: SWALLOW;
         description { state: "default" 0.0;
            visible: 0;
            min: PANEMIN2 PANEMIN;
            fixed: 1 1;
            rel.to: "elm.bar";
         }
      }
      part { name: "bar"; type: RECT;
         scale: 1;
         dragable.events: "elm.bar";
         description { state: "default" 0.0;
            min: PANEWID PANEMIN;
            max: 99999 99999;
            fixed: 1 1;
            rel1.to_y: "elm.swallow.event";
            rel2.to_y: "elm.swallow.event";
            color: 0 0 0 0; // no cc
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
   }
   programs {
      program {signal: "mouse,down,1"; source: "bar"; // for "press" smart callback
         action: SIGNAL_EMIT "elm,action,press" "elm";
      }
      program { signal: "mouse,up,1"; source: "bar"; // for "unpress" smart callback
         action: SIGNAL_EMIT "elm,action,unpress" "elm";
      }
      program { name: "bar_down";
         signal: "mouse,down,1"; source: "bar";
         action: STATE_SET "pressed" 0.0;
         target: "dots";
      }
      program { name: "bar_up";
         signal: "mouse,up,1"; source: "bar";
         action: STATE_SET "default" 0.0;
         target: "dots";
      }
      program { signal: "mouse,clicked,1"; source: "bar"; // for "clicked" smart callback
         action: SIGNAL_EMIT "elm,action,click" "elm";
      }
      program { signal: "mouse,down,1,double"; source: "bar"; // for "clicked,double" smart callback
         action: SIGNAL_EMIT "elm,action,click,double" "elm";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,fixed"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "bar";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,unfixed"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "bar";
      }
   }
}

////////////////////////////////////////////////////////////////////////////

group { name: "elm/panes/vertical/flush";
   images.image: "shadow_circle_vert.png" COMP;
   parts {
      part { name: "whole"; type: SPACER;
         description { state: "default" 0.0;
         }
      }
      part { name: "right_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 1 1 1;
            y: 0 0 0;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "left_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 1 1 1;
            y: 0 0 0;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "sub_whole"; type: SPACER;
         description { state: "default" 0.0;
            rel1.relative: 1.0 0.0;
            rel1.to_x: "left_constraint";
            rel2.relative: 0.0 1.0;
            rel2.to_x: "right_constraint";
         }
      }
      part { name: "whole_left"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_x: "elm.bar";
            rel2.relative: 1.0 1.0;
         }
      }
      part { name: "whole_right"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_x: "elm.bar";
            rel1.relative: 0.0 0.0;
         }
      }
      part { name: "elm.swallow.left"; type: SWALLOW;
         clip_to: "whole_left";
         description { state: "default" 0.0;
            rel2.to_x: "elm.bar";
            rel2.relative: 1.0 1.0;
            fixed: 1 0;
         }
      }
      part { name: "elm.swallow.right"; type: SWALLOW;
         clip_to: "whole_right";
         description { state: "default" 0.0;
            rel1.to_x: "elm.bar";
            rel1.relative: 0.0 0.0;
            fixed: 1 0;
         }
      }
      part { name: "elm.bar"; type: SPACER;
         scale: 1;
         dragable { confine: "sub_whole";
            x: 1 1 1;
            y: 0 0 0;
         }
         description { state: "default" 0.0;
            max: 0 99999;
            min: 0 14;
            fixed: 1 1;
            rel1.relative: 0.0 0.5;
            rel2.relative: 1.0 0.5;
         }
      }
      part { name: "elm.swallow.event"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            visible: 0;
            min: PANEMIN PANEMIN2;
            fixed: 1 1;
            rel.to: "elm.bar";
         }
      }
      part { name: "bar"; type: RECT;
         scale: 1;
         dragable.events: "elm.bar";
         description { state: "default" 0.0;
            min: PANEMIN PANEWID;
            max: 99999 99999;
            fixed: 1 1;
            rel1.to_x: "elm.swallow.event";
            rel1.relative: 0.0 0.25;
            rel2.to_x: "elm.swallow.event";
            rel2.relative: 1.0 0.75;
            color: 0 0 0 0; // no cc
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "glow1a"; mouse_events: 0;
         clip_to: "whole_right";
         scale: 1;
         description { state: "default" 0.0;
            image.normal: "shadow_circle_vert.png";
            rel1.to_x: "elm.bar";
            rel2.to_x: "elm.bar";
            color_class: "/shadow/normal/panes/flush";
            color: 255 255 255 0; // no cc
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 255; // no cc
            rel1.offset: -16 0;
            rel2.offset: 15 -1;
            visible: 1;
         }
      }
      part { name: "glow2a"; mouse_events: 0;
         clip_to: "whole_left";
         scale: 1;
         description { state: "default" 0.0;
            image.normal: "shadow_circle_vert.png";
            rel1.to_x: "elm.bar";
            rel2.to_x: "elm.bar";
            color_class: "/shadow/normal/panes/flush";
            color: 255 255 255 0; // no cc
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 255; // no cc
            rel1.offset: -16 0;
            rel2.offset: 15 -1;
            visible: 1;
         }
      }
      part { name: "glowbar1a"; type: RECT; mouse_events: 0;
         clip_to: "whole_left";
         scale: 1;
         description { state: "default" 0.0;
            rel1.to_x: "elm.bar";
            rel2.to_x: "elm.bar";
            color_class: "/fg/normal/panes/flush";
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            rel1.offset: -5 0;
            rel2.offset: 4 -1;
            visible: 1;
         }
      }
      part { name: "glowbar2a"; type: RECT; mouse_events: 0;
         clip_to: "whole_right";
         scale: 1;
         description { state: "default" 0.0;
            rel1.to_x: "elm.bar";
            rel2.to_x: "elm.bar";
            color_class: "/fg/normal/panes/flush";
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            rel1.offset: -5 0;
            rel2.offset: 4 -1;
            visible: 1;
         }
      }
      part { name: "bar1"; type: RECT; repeat_events: 1;
         description { state: "default" 0.0;
            fixed: 1 1;
            rel.to: "bar";
            rel2.relative: 0.5 1.0;
            color: 0 0 0 0; // no cc
         }
      }
      part { name: "bar2"; type: RECT; repeat_events: 1;
         description { state: "default" 0.0;
            fixed: 1 1;
            rel.to: "bar";
            rel1.relative: 0.5 0.0;
            color: 0 0 0 0; // no cc
         }
      }
   }
   programs {
      program {signal: "mouse,down,1"; source: "bar"; // for "press" smart callback
         action: SIGNAL_EMIT "elm,action,press" "elm";
      }
      program { signal: "mouse,up,1"; source: "bar"; // for "unpress" smart callback
         action: SIGNAL_EMIT "elm,action,unpress" "elm";
      }
      program { signal: "mouse,clicked,1"; source: "bar"; // for "clicked" smart callback
         action: SIGNAL_EMIT "elm,action,click" "elm";
      }
      program { signal: "mouse,down,1,double"; source: "bar"; // for "clicked,double" smart callback
         action: SIGNAL_EMIT "elm,action,click,double" "elm";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,fixed"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "bar";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,unfixed"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "bar";
      }
      program { signal: "mouse,in"; source: "bar1";
         action: STATE_SET "active" 0.0;
         transition: DECELERATE 0.2;
         target: "glow1a";
         target: "glowbar1a";
      }
      program { signal: "mouse,out"; source: "bar1";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "glow1a";
         target: "glowbar1a";
      }
      program { signal: "mouse,in"; source: "bar2";
         action: STATE_SET "active" 0.0;
         transition: DECELERATE 0.2;
         target: "glow2a";
         target: "glowbar2a";
      }
      program { signal: "mouse,out"; source: "bar2";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "glow2a";
         target: "glowbar2a";
      }
   }
}

group { name: "elm/panes/horizontal/flush";
   images.image: "shadow_circle_horiz.png" COMP;
   parts {
      part { name: "whole"; type: SPACER;
         description { state: "default" 0.0;
         }
      }
      part { name: "right_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 0 0 0;
            y: 1 1 1;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "left_constraint"; type: SPACER;
         dragable { confine: "whole";
            x: 0 0 0;
            y: 1 1 1;
         }
         description { state: "default" 0.0;
            max: 0 0;
         }
      }
      part { name: "sub_whole"; type: SPACER;
         description { state: "default" 0.0;
            rel1.relative: 0.0 1.0;
            rel1.to_y: "left_constraint";
            rel2.relative: 1.0 0.0;
            rel2.to_y: "right_constraint";
         }
      }
      part { name: "whole_left"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_y: "elm.bar";
            rel2.relative: 1.0 1.0;
         }
      }
      part { name: "whole_right"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_y: "elm.bar";
            rel1.relative: 0.0 0.0;
         }
      }
      part { name: "elm.swallow.left"; type: SWALLOW;
         clip_to: "whole_left";
         description { state: "default" 0.0;
            rel2.to_y: "elm.bar";
            rel2.relative: 1.0 1.0;
            fixed: 0 1;
         }
      }
      part { name: "elm.swallow.right"; type: SWALLOW;
         clip_to: "whole_right";
         description { state: "default" 0.0;
            rel1.to_y: "elm.bar";
            rel1.relative: 0.0 0.0;
            fixed: 0 1;
         }
      }
      part { name: "elm.bar"; type: SPACER;
         scale: 1;
         dragable { confine: "sub_whole";
            x: 0 0 0;
            y: 1 1 1;
         }
         description { state: "default" 0.0;
            max: 99999 0;
            min: 14 0;
            fixed: 1 1;
            rel1.relative: 0.5 0.0;
            rel2.relative: 0.5 1.0;
         }
      }
      part { name: "elm.swallow.event"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            visible: 0;
            min: PANEMIN2 PANEMIN;
            fixed: 1 1;
            rel.to: "elm.bar";
         }
      }
      part { name: "bar"; type: RECT;
         scale: 1;
         dragable.events: "elm.bar";
         description { state: "default" 0.0;
            min: PANEWID PANEMIN;
            max: 99999 99999;
            fixed: 1 1;
            rel1.to_y: "elm.swallow.event";
            rel1.relative: 0.25 0.0;
            rel2.to_y: "elm.swallow.event";
            rel2.relative: 0.75 1.0;
            color: 0 0 0 0; // no cc
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "glow1a"; mouse_events: 0;
         clip_to: "whole_right";
         scale: 1;
         description { state: "default" 0.0;
            image.normal: "shadow_circle_horiz.png";
            rel1.to_y: "elm.bar";
            rel2.to_y: "elm.bar";
            color_class: "/shadow/normal/panes/flush";
            color: 255 255 255 0; // no cc
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 255; // no cc
            rel1.offset: 0 -16;
            rel2.offset: -1 15;
            visible: 1;
         }
      }
      part { name: "glow2a"; mouse_events: 0;
         clip_to: "whole_left";
         scale: 1;
         description { state: "default" 0.0;
            image.normal: "shadow_circle_horiz.png";
            rel1.to_y: "elm.bar";
            rel2.to_y: "elm.bar";
            color_class: "/shadow/normal/panes/flush";
            color: 255 255 255 0; // no cc
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 255; // no cc
            rel1.offset: 0 -16;
            rel2.offset: -1 15;
            visible: 1;
         }
      }
      part { name: "glowbar1a"; type: RECT; mouse_events: 0;
         clip_to: "whole_left";
         scale: 1;
         description { state: "default" 0.0;
            rel1.to_y: "elm.bar";
            rel2.to_y: "elm.bar";
            color_class: "/fg/normal/panes/flush";
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            rel1.offset: 0 -5;
            rel2.offset: -1 4;
            visible: 1;
         }
      }
      part { name: "glowbar2a"; type: RECT; mouse_events: 0;
         clip_to: "whole_right";
         scale: 1;
         description { state: "default" 0.0;
            rel1.to_y: "elm.bar";
            rel2.to_y: "elm.bar";
            color_class: "/fg/normal/panes/flush";
            offscale;
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            rel1.offset: 0 -5;
            rel2.offset: -1 4;
            visible: 1;
         }
      }
      part { name: "bar1"; type: RECT; repeat_events: 1;
         description { state: "default" 0.0;
            fixed: 1 1;
            rel.to: "bar";
            rel2.relative: 1.0 0.5;
            color: 0 0 0 0; // no cc
         }
      }
      part { name: "bar2"; type: RECT; repeat_events: 1;
         description { state: "default" 0.0;
            fixed: 1 1;
            rel.to: "bar";
            rel1.relative: 0.0 0.5;
            color: 0 0 0 0; // no cc
         }
      }
   }
   programs {
      program {signal: "mouse,down,1"; source: "bar"; // for "press" smart callback
         action: SIGNAL_EMIT "elm,action,press" "elm";
      }
      program { signal: "mouse,up,1"; source: "bar"; // for "unpress" smart callback
         action: SIGNAL_EMIT "elm,action,unpress" "elm";
      }
      program { signal: "mouse,clicked,1"; source: "bar"; // for "clicked" smart callback
         action: SIGNAL_EMIT "elm,action,click" "elm";
      }
      program { signal: "mouse,down,1,double"; source: "bar"; // for "clicked,double" smart callback
         action: SIGNAL_EMIT "elm,action,click,double" "elm";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,fixed"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "bar";
      }
      program { // for elm_panes_fixed_set()
         signal: "elm,panes,unfixed"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "bar";
      }
      program { signal: "mouse,in"; source: "bar1";
         action: STATE_SET "active" 0.0;
         transition: DECELERATE 0.2;
         target: "glow1a";
         target: "glowbar1a";
      }
      program { signal: "mouse,out"; source: "bar1";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "glow1a";
         target: "glowbar1a";
      }
      program { signal: "mouse,in"; source: "bar2";
         action: STATE_SET "active" 0.0;
         transition: DECELERATE 0.2;
         target: "glow2a";
         target: "glowbar2a";
      }
      program { signal: "mouse,out"; source: "bar2";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "glow2a";
         target: "glowbar2a";
      }
   }
}

group { name: "elm/panes/vertical/left-fold";
   inherit: "elm/panes/vertical/default";
   script {
      public open;
      public drag_x;
      public drag_y;
   }
   parts {
      image { "dots";
         desc { "default";
            image.normal: "i-arrow-l";
            FIXED_SIZE(15, 15)
            color_class: "/fg/normal/panes/fold/arrow";
         }
         desc { "pressed";
            image.normal: "i-arrow-l";
            FIXED_SIZE(15, 15)
            color_class: "/fg/pressed/panes/fold/arrow";
         }
         desc { "closed";
            inherit: "default" 0.0;
            image.normal: "i-arrow-r";
         }
         desc { "closed-pressed";
            inherit: "pressed" 0.0;
            image.normal: "i-arrow-r";
            color_class: "/fg/pressed/panes/fold/arrow";
         }
      }
      rect { "event";
         repeat;
         desc { "default";
            rel.to: "dots";
            color: 0 0 0 0; // no cc
         }
      }
   }
   programs {
      program { signal: "load"; source: "";
         script {
            set_int(open, 1);
         }
      }
      program { name: "bar_down";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "pressed", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed-pressed", 0.0);
            }
         }
      }
      program { name: "bar_up";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "default", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed", 0.0);
            }
         }
      }
      program { signal: "mouse,clicked,1"; source: "event";
         script {
            if (get_int(open) == 1) {
               new Float: dx;
               new Float: dy;
               set_int(open, 0);
               get_drag(PART:"elm.bar", dx, dy);
               set_float(drag_x, dx);
               set_drag(PART:"elm.bar", 0.0, 0.5);
               set_state(PART:"dots", "closed", 0.0);
            } else if (get_int(open) == 0) {
               set_int(open, 1);
               set_drag(PART:"elm.bar", get_float(drag_x), 0.5);
               set_state(PART:"dots", "default", 0.0);
            }
         }
      }
   }
}

group { name: "elm/panes/vertical/right-fold";
   inherit: "elm/panes/vertical/default";
   script {
      public open;
      public drag_x;
      public drag_y;
   }
   parts {
      image { "dots";
         scale;
         desc { "default";
            image.normal: "i-arrow-r";
            FIXED_SIZE(15, 15)
            color_class: "/fg/normal/panes/fold/arrow";
         }
         desc { "pressed";
            image.normal: "i-arrow-r";
            FIXED_SIZE(15, 15)
            color_class: "/fg/pressed/panes/fold/arrow";
         }
         desc { "closed";
            inherit: "default" 0.0;
            image.normal: "i-arrow-l";
         }
         desc { "closed-pressed";
            inherit: "pressed" 0.0;
            image.normal: "i-arrow-r";
            color_class: "/fg/pressed/panes/fold/arrow";
         }
      }
      rect { "event";
         repeat;
         desc { "default";
            rel.to: "dots";
            color: 0 0 0 0; // no cc
         }
      }
   }
   programs {
      program { signal: "load"; source: "";
         script {
            set_int(open, 1);
         }
      }
      program { name: "bar_down";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "pressed", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed-pressed", 0.0);
            }
         }
      }
      program { name: "bar_up";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "default", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed", 0.0);
            }
         }
      }
      program { signal: "mouse,clicked,1"; source: "event";
         script {
            if (get_int(open) == 1) {
               new Float: dx;
               new Float: dy;
               set_int(open, 0);
               get_drag(PART:"elm.bar", dx, dy);
               set_float(drag_x, dx);
               set_drag(PART:"elm.bar", 1.0, 0.5);
               set_state(PART:"dots", "closed", 0.0);
            } else if (get_int(open) == 0) {
               set_int(open, 1);
               set_drag(PART:"elm.bar", get_float(drag_x), 0.5);
               set_state(PART:"dots", "default", 0.0);
            }
         }
      }
   }
}

group { name: "elm/panes/horizontal/up-fold";
   inherit: "elm/panes/horizontal/default";
   script {
      public open;
      public drag_x;
      public drag_y;
   }
   parts {
      image { "dots";
         scale;
         desc { "default";
            image.normal: "i-arrow-u";
            FIXED_SIZE(15, 15)
            color_class: "/fg/normal/panes/fold/arrow";
         }
         desc { "pressed";
            image.normal: "i-arrow-u";
            FIXED_SIZE(15, 15)
            color_class: "/fg/pressed/panes/fold/arrow";
         }
         desc { "closed";
            inherit: "default" 0.0;
            image.normal: "i-arrow-d";
         }
         desc { "closed-pressed";
            inherit: "pressed" 0.0;
            image.normal: "i-arrow-r";
            color_class: "/fg/pressed/panes/fold/arrow";
         }
      }
      rect { "event";
         repeat;
         desc { "default";
            rel.to: "dots";
            color: 0 0 0 0; // no cc
         }
      }
   }
   programs {
      program { signal: "load"; source: "";
         script {
            set_int(open, 1);
         }
      }
      program { name: "bar_down";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "pressed", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed-pressed", 0.0);
            }
         }
      }
      program { name: "bar_up";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "default", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed", 0.0);
            }
         }
      }
      program { signal: "mouse,clicked,1"; source: "event";
         script {
            if (get_int(open) == 1) {
               new Float: dx;
               new Float: dy;
               set_int(open, 0);
               get_drag(PART:"elm.bar", dx, dy);
               set_float(drag_y, dy);
               set_drag(PART:"elm.bar", 0.5, 0.0);
               set_state(PART:"dots", "closed", 0.0);
            } else if (get_int(open) == 0) {
               set_int(open, 1);
               set_drag(PART:"elm.bar", 0.5, get_float(drag_y));
               set_state(PART:"dots", "default", 0.0);
            }
         }
      }
   }
}

group { name: "elm/panes/horizontal/down-fold";
   inherit: "elm/panes/horizontal/default";
   script {
      public open;
      public drag_x;
      public drag_y;
   }
   parts {
      image { "dots";
         scale;
         desc { "default";
            image.normal: "i-arrow-d";
            FIXED_SIZE(15, 15)
            color_class: "/fg/normal/panes/fold/arrow";
         }
         desc { "pressed";
            image.normal: "i-arrow-d";
            FIXED_SIZE(15, 15)
            color_class: "/fg/pressed/panes/fold/arrow";
         }
         desc { "closed";
            inherit: "default" 0.0;
            image.normal: "i-arrow-u";
         }
         desc { "closed-pressed";
            inherit: "pressed" 0.0;
            image.normal: "i-arrow-r";
            color_class: "/fg/pressed/panes/fold/arrow";
         }
      }
      rect { "event";
         repeat;
         desc { "default";
            rel.to: "dots";
            color: 0 0 0 0; // no cc
         }
      }
   }
   programs {
      program { signal: "load"; source: "";
         script {
            set_int(open, 1);
         }
      }
      program { name: "bar_down";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "pressed", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed-pressed", 0.0);
            }
         }
      }
      program { name: "bar_up";
         script {
            if (get_int(open) == 1) {
               set_state(PART:"dots", "default", 0.0);
            } else if (get_int(open) == 0) {
               set_state(PART:"dots", "closed", 0.0);
            }
         }
      }
      program { signal: "mouse,clicked,1"; source: "event";
         script {
            if (get_int(open) == 1) {
               new Float: dx;
               new Float: dy;
               set_int(open, 0);
               get_drag(PART:"elm.bar", dx, dy);
               set_float(drag_y, dy);
               set_drag(PART:"elm.bar", 0.5, 1.0);
               set_state(PART:"dots", "closed", 0.0);
            } else if (get_int(open) == 0) {
               set_int(open, 1);
               set_drag(PART:"elm.bar", 0.5, get_float(drag_y));
               set_state(PART:"dots", "default", 0.0);
            }
         }
      }
   }
}

#undef PANEMIN
#undef PANEMIN2
#undef PANEWID
